关于“一一对应”的一些思考
- tableView中数据与UI的关系
平时 ,我们的tableView需要展示多少TableViewCell,展示何种TableViewCell,都是由我们的数据来决定的,正常来说,我们的DataSource里面有多少个数据,就显示多少个cell,有多少种data就显示多少种cell,这是正常的一一对应关系,也有极少数开发者将数据与cell形成一对多的映射关系,这种做法在模块内容易造成耦合过高,通常来说不被提倡,我们只讨论一一对应的关系。
数据与UI的一一对应映射模拟
- 假设我们初始的模拟数据为全部一级菜单:[[1],[1],[1],[1],[1]]
section | row | dataSource | tableViewCell | |
---|---|---|---|---|
0 | 0 | 一级菜单数据 | 一级菜单cell | |
1 | 0 | 一级菜单数据 | 一级菜单cell | |
2 | 0 | 一级菜单数据 | 一级菜单cell | |
3 | 0 | 一级菜单数据 | 一级菜单cell | |
4 | 0 | 一级菜单数据 | 一级菜单cell |
- 当我门点击第三组的一级菜单的时候,就会打开第三组的二级菜单:[[1],[1],[1,2],[1],[1]],即在第三组数据中加入二级菜单的数据,然后刷新UI:
section | row | dataSource | tableViewCell | |
---|---|---|---|---|
0 | 0 | 一级菜单数据 | 一级菜单cell | |
1 | 0 | 一级菜单数据 | 一级菜单cell | |
2 | 0 | 一级菜单数据 | 一级菜单cell | |
2 | 1 | 二级菜单数据 | 二级菜单cell | |
3 | 0 | 一级菜单数据 | 一级菜单cell | |
4 | 0 | 一级菜单数据 | 一级菜单cell |
- 当我门点击第三组的二级菜单的时候,就会打开第三组的三级级菜单:[[1],[1],[1,2,3],[1],[1]],即在第三组数据中加入三级级菜单的数据,然后刷新UI:
section | row | dataSource | tableViewCell | |
---|---|---|---|---|
0 | 0 | 一级菜单数据 | 一级菜单cell | |
1 | 0 | 一级菜单数据 | 一级菜单cell | |
2 | 0 | 一级菜单数据 | 一级菜单cell | |
2 | 1 | 二级菜单数据 | 二级菜单cell | |
2 | 2 | 三级菜单数据 | 三级菜单cell | |
3 | 0 | 一级菜单数据 | 一级菜单cell | |
4 | 0 | 一级菜单数据 | 一级菜单cell |